package sanrenxing.notice.dao;

import sanrenxing.notice.domain.Notice;
import sanrenxing.notice.domain.NoticeTo;

import java.util.List;

public interface NoticeDao {
    /**
     * 将实体对象添加到数据库notice表中
     * @param notice 员工对象
     * @return 成功添加的行数(1:添加成功;0:添加失败)
     */
    public int add(Notice notice);

    /**
     * 根据编号主键从数据库表中删除指定数据
     * @param noticeId 编号主键
     * @return 删除影响的行数(1:删除成功;0:删除失败)
     */
    public int delete(int noticeId);

    /**
     * 将对象数据修改到数据库表中
     * @param notice 对象
     * @return 修改影响的行数(1:修改成功;0:修改失败)
     */
    public int update(Notice notice);

    /**
     * 根据编号主键从数据库表中查找单个员工
     * @param noticeId 编号主键
     * @return 员工对象(如果返回null值，表示查找失败)
     */
    public Notice findById(int noticeId);

    /**
     * 查询数据库表中所有员工
     * @return 对象集合
     */
    public List<Notice> findAll();

    /**
     * 从数据库表中查询指定页的员工对象集合
     * @param rows 每页的员工行数
     * @param pages 页数
     * @return 当前页的员工对象集合
     */
    public List<Notice> findByPage(int rows, int pages);

    /**
     * 统计数据库emp表中记录总数
     * @return 员工表中记录总数
     */
    public int count();

    /**
     * 条件分页查询
     * @param rows 每页行数
     * @param pages 页数
     * @param condition 条件
     * @return 员工对象集合
     */
    public List<NoticeTo> findByPage(int rows, int pages, String condition);

    /**
     * 条件统计
     * @param condition 条件
     * @return 员工数
     */
    public int count(String condition);

    /**
     * 获取查询条件
     * @param notice 对象
     * @return 条件字符串
     */
    public String getCondition(Notice notice);


    /**
     * 通过班级名称查询班级编号
     * @param className
     * @return
     */
    public int findClassId(String className);


    /**
     * 通过发布者名字查询发布者编号
     * @param teacherName
     * @return
     */
    public int findTeacherId(String teacherName);
}
